|
Now that the final versions of Windows 8 and Visual Studio 2012 have shipped, most Silverlight developers are looking at ways to translate their existing skill set to Windows Runtime (WinRT) apps built with XAML. Because you're already familiar with XAML, you need to understand what the Windows Runtime consists of, and how it's different than what you're used to. In this article, I document 10 things I've found while building my first WinRT app using XAML/C#; I hope they'll save you time and energy getting used to this new platform. Wait, is this different than Windows RT? Is Silverlight staying or going? I'm so confused...
|
|
|
|
|
You aren't the only one confused by this. MS (particularly the Win8 team) has done an incredibly hideous job of messaging, and an equally hideous job of defining Windows 8 (which is actually two operating systems). I'll try my best to explain.
Windows 8 is actually two operating systems duct-taped together. One is the "Desktop" OS, which for all intents and purposes is Windows 7. It runs just like Windows 7 (minus the Start Bar), and is fully backwards compatible with all the code and plug-ins (including Silverlight) that you used before Windows 8.
The other side of the OS is what people sort of called "Metro". But we can no longer call it that because MS found out that "Metro" was already trademarked. There is effectively no good name for it now (apps for this part of the OS are now loosely called Windows Store Apps rather than Metro apps, for example). This part of the OS is exposed as WinRT or Windows RT. It is brand new code that has little to do with old Windows, and includes all the consumer-ish UI bits, like live tiles, charms, touch gestures etc.
When you buy Windows 8 on a PC (or for a PC), you get both sides of the OS installed. If you run the newer Windows Store Apps, they are launched from the tiles screen and run in WinRT. If you try to run old Windows apps, they run in "Desktop" mode, even though you will probably be launching them from the tiles screen too.
If you get Windows 8 on a mobile device powered by an ARM chip, you only get the new WinRT side of the OS (no Desktop mode).
So, if you attempt to create a new Windows Store App (WinRT application) in .NET, part of it will feel familiar because WinRT apps also use XAML to define the user interface (just like WPF and Silverlight did). However, there are some WinRT quirks in the runtime, like most operations being asynchronous, that force developers of WinRT apps to learn some things that are not so similar to older Silverlight or WPF apps.
As for the second question, about whether or not Silverlight is alive or dead... it sort of depends who you ask, and what platform you are targetting. Steve Jobs effectively killed plug-ins on mobile devices. After he decided that iOS would not allow plug-ins for mobile app devices, most other mobile producers followed suit (including MS). Silverlight requires a plug-in to run, so it's effectively been killed from most new mobile platforms.
Windows Phone 7 was trying to force all apps to be Silverlight, but Win 8 Phone is now all WinRT, and will *not* be supporting Silverlight.
Silverlight will still run in Windows Desktop mode, but if you have the full desktop capabilities available, then Silverlight is probably not the best technology to use, especially because it will no longer run on other platforms. If you writing apps for Windows itself, then you're probably better off with WPF (in desktop mode) or WinRT Apps. If you want a more universal run-everywhere technology, people are migrating to HTML5 because that's the only thing that will run across most mobile devices as well as desktops and laptops.
So basically, the areas where Silverlight will still operate have narrowed, and the areas where Silverlight provides a clear advantage have all but disappeared. When you add the rumors and rumblings about what's going on with Silverlight development within MS, it's clear that most reasonable people feel that if it's not exactly dead, it's on life support.
|
|
|
|